#include "htsc_grpc_consumer_control_deprecated.h"
#include "htsc_grpc_utils.h"
#include "grpc/support/log.h"
#include <map>
#include <string>

//存放所有设置已过期的服务
static std::map<std::string, uint64_t> g_htsc_grpc_consumer_deprected;

/*
* 校验服务deprecated属性。
*/
void consumer_check_provider_deprecated(char * servicename,bool flag) {
	//服务未过时（更新）
	if (flag == false) {
		return;
	}

	//查找map，比较时间间隔
	uint64_t currenttime = htsc_get_timestamp_in_mills();
	std::map<std::string, uint64_t>::iterator finditem = g_htsc_grpc_consumer_deprected.find(servicename);
	if (finditem == g_htsc_grpc_consumer_deprected.end()) {
		g_htsc_grpc_consumer_deprected.insert(std::pair<std::string, uint64_t>(servicename, currenttime));
		gpr_log(GPR_ERROR, "当前服务[%s]的信息发生过变更，或者已经有新版本上线", servicename);
	}
	else if ((currenttime - finditem->second) > HTSC_GRPC_COMMON_DEPRECATED_TIP_INTERVAL) {
		finditem->second = currenttime;
		//gpr_log(GPR_INFO, "the provider service deprecated。");
		gpr_log(GPR_ERROR, "当前服务[%s]的信息发生过变更，或者已经有新版本上线", servicename);
	}	
}